/*
 * @ : Copyright (c) 2020 Phytium Information Technology, Inc. 
 *  
 * SPDX-License-Identifier: Apache-2.0.
 * 
 * @Date: 2021-05-27 13:30:03
 * @LastEditTime: 2021-07-22 08:57:30
 * @Description:  This files is for 
 * 
 * @Modify History: 
 *  Ver   Who        Date         Changes
 * ----- ------     --------    --------------------------------------
 */

#ifndef _BSP_COMMON_FT_TYPE_H
#define _BSP_COMMON_FT_TYPE_H

#ifdef __cplusplus
extern "C"
{
#endif

#include <stdint.h>
#include <stddef.h>

#define FT_COMPONENT_IS_READY 0x11111111U
#define FT_COMPONENT_IS_STARTED 0x22222222U

    typedef uint8_t u8;            // unsigned 8-bit
    typedef char s8;               // signed 8-bit
    typedef uint16_t u16;          // unsigned 16-bit
    typedef short s16;             // signed 16-bit
    typedef uint32_t u32;          // unsigned 32-bit
    typedef long s32;              // signed 32-bit
    typedef uint64_t u64;          // unsigned 64-bit
    typedef int64_t s64;           // unsigned
    typedef float f32;             // 32-bit floating point
    typedef double f64;            // 64-bit double precision FP
    typedef unsigned long boolean; // boolean
    typedef uint64_t _time_t;
    typedef size_t fsize_t;

    typedef intptr_t intptr;
    typedef uintptr_t uintptr;
    typedef ptrdiff_t ptrdiff;

/** @}*/
#if !defined(LONG) || !defined(ULONG)
    typedef long LONG;
    typedef unsigned long ULONG;
#endif

#define ULONG64_HI_MASK 0xFFFFFFFF00000000U
#define ULONG64_LO_MASK ~ULONG64_HI_MASK

#ifndef TRUE
#define TRUE 1U
#endif

#ifndef FALSE
#define FALSE 0U
#endif

#ifndef NULL
#define NULL 0U
#endif

#define _INLINE inline
#define _WEAK __attribute__((weak))

    typedef void (*FIrqHandler)(void *InstancePtr);

    typedef void (*FExceptionHandler)(void *InstancePtr);

#ifdef __cplusplus
}
#endif

#endif // !
